package concept;

/**
 * @author ypz
 * @date 2021/9/14 11:17
 */

/**
 * 成员变量和局部变量的区别：
 * 作用域：
 * 成员变量：针对类有效
 * 局部变量：一般指的是在方法体内部有效
 * 存储：
 * 成员变量：随着对象的创建而存在，随着对象的消失而消失，存储在堆内存中。
 * 局部变量：在方法被调用，或者语句被执行的时候存在，存储在栈内存中。当方法调用完，或者语句结束后，就自动释放。
 * 生命周期
 * 成员变量：随着对象的创建而存在，随着对象的消失而消失
 * 局部变量：当方法调用完，或者语句结束后，就自动释放。
 * 初始值
 * 成员变量：有默认初始值。
 * 局部变量：没有默认初始值，使用前必须赋值。
 * 静态变量和示例变量的区别：
 * 静态变量：静态变量不属于任何示例对象，而是属于类的，会在类加载的时候初始化，所以在内存中只有一份，在类的加载过程中，jvm只为静态变量分配一次内存空间
 * 成员变量：成员变量是属于示例对象的，每次创建对象，都会为成员变量分配内存空间，所以创建几次对象就会有几份成员变量。
 */
public class Variable {
    private Integer id ; //成员变量
    public static String name ;
    void method1(){
        Integer i ; //局部变量
        int j ;
        //System.out.println(j); 使用需要赋值
        //System.out.println(i);
    }
}
